A lithographic apparatus is a machine that applies a desired pattern onto a target portion of a substrate. Lithographic apparatus can be used, for example, in the manufacture of integrated circuits (ICs). In that circumstance, a patterning structure, such as a mask, may be used to generate a circuit pattern corresponding to an individual layer of the IC, and this pattern can be imaged onto a target portion (e.g. comprising part of, one or several dies) on a substrate (e.g. a silicon wafer) that has a layer of radiation-sensitive material (resist). In general, a single substrate will contain a network of adjacent target portions that are successively exposed. Known lithographic apparatus include so-called steppers, in which each target portion is irradiated by exposing an entire pattern onto the target portion in one go, and so-called scanners, in which each target portion is irradiated by scanning the pattern through the projection beam in a given direction (the “scanning”-direction) while synchronously scanning the substrate parallel or anti-parallel to this direction.
In a factory, commonly referred to as a “fab” or “foundry”, in which semiconductor devices are manufactured, each lithographic apparatus is commonly grouped with a “track” (e.g. comprising other lithographic processing machines such as wafer handling devices and pre- and post-processing devices) to form a lithographic processing system commonly called a lithographic processing cell or “lithocell”. Both the lithographic apparatus and the track have supervisory control systems which are themselves under the control of a further supervisory control system. Wafers, which may be blank or have already been processed to include one or more process or device layers, are delivered to the lithocell in lots (also referred to as batches) for processing. A lot is, in general, a group of wafers which are to be processed by the lithocell in the same way and is accompanied by a “recipe” which specifies the processes to be carried out. The lot size may be arbitrary or determined by the size of carrier used to transport substrates around the fab. The recipe may include details of the resist coating to be applied, temperature and duration of pre- and post-exposure bakes, details of the pattern to be exposed and the exposure settings for that, development duration, etc. A large number of tasks must be performed to complete the recipe for a given batch and there are many possible ways these can be done, as in many cases both the track and lithographic apparatus are capable of performing multiple tasks at once, e.g. if the track includes multiple spin coaters or multipurpose stations or if the lithographic apparatus is a dual stage apparatus having measurement and exposure stations. Thus scheduling the tasks to be performed, and optimizing that schedule to maximize throughput, is a complex task.
In most cases, on-the-fly scheduling is limited and most sequences of tasks are hard-coded in the control software of the apparatus or the supervisory control system. Where the possibility of errors is taken into account, this is generally by hard-coded decisions of the form—if error A occurs, do task B. As the number of possible errors multiplies, so does the amount of code required to deal with them and the system is incapable of recovering from unforeseen errors. A more flexible approach to scheduling is to construct a tree based on tasks to be completed and their precedence relation. In such a tree, starting from an origin, branches represent possible tasks that may be carried and lead to nodes, from which further branches represent tasks that may then be carried out, and so on. Scheduling then becomes a matter of selecting a path through the tree. Such an approach is described in U.S. Pat. No. 6,201,999. It will be appreciated that such a tree structure rapidly becomes very large, particularly if possible errors and failures are taken into account. Thus, exception recovery is still a problem.
In a manufacturing system with multiple equivalent capabilities, the determination of what tasks are to be performed by which resource, can be divided into two parts: first determine the sequence of tasks that must be performed to complete the given work (sequencing), then determine which resources are to be used to perform which tasks. U.S. Pat. No. 5,126,932 describes a program for automatically performing the latter part—it requires as input a predetermined sequence of tasks to be performed but then decides which resource, e.g. one of several available lithographic apparatus, is to perform that sequence on a given material, e.g. a lot of wafers. The program cannot adjust the predetermined sequence and can only recover from errors in the sense that work scheduled for one apparatus might instead be performed on another if the first becomes unavailable.